package com.yz.crm.weixin.service;


import com.yz.common.exception.ServiceException;
import com.yz.crm.weixin.model.ThirdPartyUser;

/**
 * Created by DOVE on 2015/9/14.
 */
public interface ThirdPartyUserService {

    /**
     * 获取用户微信信息(sysUserId和openId都是选填，但是必须填写一个,subType选填，可根据需求填写)
     * @param sysUserId
     * @param openId
     * @return
     */
    public ThirdPartyUser getInfo(Integer sysUserId, String openId);

    /**
     * 根据 unionId,openId 查询第三方用户 unionId相关详细信息(只查询微信开放平台的用户信息，不查询公众平台的信息)
     * @param unionId
     * @param openId
     * @return
     */
    public ThirdPartyUser getUnionUserInfo(String unionId, String openId, Integer subType);


    /**
     * 增加第三方用户信息
     * @param thirdParthUser
     * @return
     */
    public int add(ThirdPartyUser thirdParthUser) throws ServiceException;


    /**
     * 更新第三方用户信息 (绑定解绑都可以 通过ThirdParthUser内参数来指定)
     * @param thirdParthUser
     * @return
     */
    public int update(ThirdPartyUser thirdParthUser);

    /**
     * 根据Id 更新用户信息
     * @param ThirdParthUser
     * @return
     */
    public int updateById(ThirdPartyUser ThirdParthUser);

    /**
     * 根据UnionId 更新用户信息
     * @param ThirdParthUser
     * @return
     */
    public int updateByUnionId(ThirdPartyUser ThirdParthUser);

    /**
     * 更新第三方用户信息 (绑定解绑都可以 通过ThirdParthUser内参数来指定)
     * @param ThirdParthUser
     * @return
     */
    public int updateBySysUserId(ThirdPartyUser ThirdParthUser);

    /**
     * 更新第三方用户信息 解绑
     * @param o
     * @return
     */
    public int updateToUnBind(ThirdPartyUser o);

    /**
     * 解绑 用户信息与openId解绑
     * @param sysUserId
     * @param authCode
     * @return
     */
    public int updateToUnBind(Integer sysUserId, String authCode);


    /**************************新版使用的接口***************************************/

}
